package cn.lili.modules.member.fallback;

import cn.lili.common.exception.ServiceException;
import cn.lili.common.security.enums.SceneEnums;
import cn.lili.modules.member.client.UserClient;
import cn.lili.modules.member.entity.dos.CityDistribution;
import cn.lili.modules.member.entity.dos.User;
import cn.lili.modules.member.entity.dto.UserInfoDTO;
import cn.lili.modules.member.entity.dto.UserLoginDTO;
import cn.lili.modules.member.entity.dto.UserSearchParams;
import cn.lili.modules.member.entity.vo.UserVO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import java.util.List;
import java.util.Map;

/**
 * @author: ftyy
 * @date: 2022-01-13 15:46
 * @description: 会员服务 Fallback
 */
public class UserFallback implements UserClient {
    @Override
    public User getById(String id) {
        throw new ServiceException();
    }

    @Override
    public User getByMobile(String mobile, SceneEnums scene) {
        throw new ServiceException();
    }

    @Override
    public List<Map<String, Object>> listFieldsByMemberIds(String columns, List<String> memberIds) {
        throw new ServiceException();
    }

    @Override
    public List<String> getAllMemberMobile() {
        throw new ServiceException();
    }

    @Override
    public long getUserNum(UserSearchParams userSearchParams) {
        throw new ServiceException();
    }

    @Override
    public List<User> list(UserSearchParams searchParams) {
        throw new ServiceException();
    }

    /**
     * 更新会员登录时间为最新时间
     *
     * @param userId 会员id
     * @return 是否更新成功
     */
    @Override
    public Boolean updateUserLoginTime(String userId) {
        throw new ServiceException();
    }

    @Override
    public User queryUser(UserLoginDTO userLoginDTO) {
        throw new ServiceException();
    }

    @Override
    public User mobilePhoneLogin(String mobile, SceneEnums scene) {
        throw new ServiceException();
    }

    @Override
    public User register(UserInfoDTO userInfoDTO) {
        throw new ServiceException();
    }

    @Override
    public void resetPasswordSign(String uuid, String mobile, SceneEnums scene) {
        throw new ServiceException();
    }

    @Override
    public Boolean resetPasswordByMobile(String uuid, String password, SceneEnums scene) {
        throw new ServiceException();
    }

    @Override
    public UserVO info() {
        throw new ServiceException();
    }

    @Override
    public User generateUser(User user) {
        throw new ServiceException();
    }

    @Override
    public User getByExtId(String extId) {
        throw new ServiceException();
    }

    @Override
    public User getByExtId2(String extId) {
        throw new ServiceException();
    }

    @Override
    public User getByOpenId(String openId, String scene) {
        throw new ServiceException();
    }

    @Override
    public Boolean updateFyById(String openId, String account, String nickName, String userId, String id) {
        throw new ServiceException();
    }

    @Override
    public User getByUserName(String account, String scene) {
        throw new ServiceException();
    }

    @Override
    public Boolean deleteUserByExtId(String extId) {
        throw new ServiceException();
    }

    @Override
    public List<User> selectUserListByIds(List<String> userIdList) {
        throw new ServiceException();
    }

    @Override
    public Boolean userFrozen(String userId, Boolean frozen) {
        throw new ServiceException();
    }

    @Override
    public String getOpenIdByFy() {
        throw new ServiceException();
    }

    /**
     * 更新头像和昵称,非强一致性,失败则不抛异常，返回false即可
     * @param user
     * @return
     */
    @Override
    public Boolean updateUserFyNameAndFaceById(User user) {
        return false;
    }

    @Override
    public Boolean updateById(User user) {
        throw new ServiceException();
    }

    @Override
    public Map<String, Integer> selectUserChildCountByUserIds(List<String> userIds) {
        throw new ServiceException();
    }

    @Override
    public Map<String, List<String>> selectChildUserIdsByMemberIds(List<String> userIds) {
        throw new ServiceException();
    }

    @Override
    public Boolean removeChildUserRelationship(User user) {
        throw new ServiceException();
    }

    @Override
    public String callGetSubordinatesAndSubSubordinates(String currentId) {
        throw new ServiceException();
    }

    @Override
    public List<User> getLowerByParentId(String userId) {
        throw new ServiceException();
    }

    @Override
    public CityDistribution getCastellan(String regionId) {
        throw new ServiceException();
    }

    @Override
    public Page<CityDistribution> historyEarnings(Integer page, Integer size) {
        throw new ServiceException();
    }

    @Override
    public CityDistribution getCastellanByCodeYearMonth(String regionId, Integer year, Integer month) {
        throw new ServiceException();
    }

    @Override
    public Boolean updateUserByIdAndMember(User user) {
        throw new ServiceException();
    }

    @Override
    public List<User> getListByFiledValue(String filed, String filedValue) {
        throw new ServiceException();
    }
}
